import { ref } from 'vue'
import { defineStore } from 'pinia'

// 定义tab数据模块
export const useTabStore = defineStore('tab', () => {
  // {
  //   name: "用户管理",
  //   path: "/URL",
  //   id: 1
  // },
  // 在这个ts中定义navs数据
  const navs = ref<any>([])
  // 定义索引值
  const index = ref(0)
  // 设置索引值的方法
  const changeIndex = (current: number) => {
    index.value = current
  }

  // 定义添加导航的方法
  const add = (option: any) => {
    let current
    const isHas = navs.value.some((item: any, i: number) => {
      if (item.name == option.name) {
        current = i
      }
      return item.name == option.name
    })

    if (!isHas) {
      navs.value.push(option)
      index.value = navs.value.length - 1
    } else {
      if (current != undefined) {
        changeIndex(current)
      }
    }
  }

  // 定义删除导航的方法
  const remove = (i: number) => {
    navs.value.splice(i, 1)
    // 此处的逻辑仍需要完善
    // ....
  }

  // 定义清空topbar导航
  const empty = () => {
    // 清空顶部栏导航
    navs.value = []
  }

  // 把数据和方法暴露出去给vue组件去使用
  return {
    navs,
    index,
    add,
    remove,
    changeIndex,
    empty,
  }
})
